home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS05.ADF / menudemo / init.c < prev    next >
C/C++ Source or Header  |  1986-01-15  |  3KB  |  122 lines

  1.  
  2. /* menu demo: init.c AmigaLink 1/25/86 */
  3.  
  4. #include "standard.h"
  5. #include "workbench/startup.h"
  6.  
  7. #define MENUPROJECT 0
  8. #define MENUEDIT 1
  9. #define MENUSTYLES 2
  10. #define MENUCOLORS 3
  11.  
  12. #define BLUE 0
  13. #define WHITE 1
  14. #define BLACK 2
  15. #define RED 3
  16.  
  17. extern struct Library *OpenLibrary();
  18.  
  19. extern struct MsgPort consoleMsgPort;
  20. extern struct MenuItem styleitems[];
  21.  
  22. extern ULONG *IntuitionBase;
  23. extern ULONG *DosBase;
  24. extern ULONG *GfxBase;
  25. extern ULONG *DiskfontBase;
  26. extern ULONG *IconBase;
  27.  
  28. char *filename;
  29. char filebuffer[31];
  30.  
  31. struct Window *OpenWindow();
  32. struct Window *window;
  33. struct IntuiMessage *message;
  34.  
  35. LONG SaveDir;
  36.  
  37. struct NewWindow nw = {
  38.         10, 10,        /* starting position (left,top) */
  39.         600,100,        /* width, height */
  40.         BLUE,WHITE,     /* detailpen, blockpen */
  41.         CLOSEWINDOW|REFRESHWINDOW|MENUPICK, /* flags for idcmp */
  42.         WINDOWDEPTH|WINDOWSIZING|WINDOWDRAG|WINDOWCLOSE|SIMPLE_REFRESH|ACTIVATE,                        /* window gadget flags */
  43.         NULL,           /* pointer to 1st user gadget */
  44.         NULL,           /* pointer to user check */
  45.         "Demo V1.0", /* title */
  46.         NULL,           /* pointer to window screen */
  47.         NULL,           /* pointer to super bitmap */
  48.         100,45,         /* min width, height */
  49.         640,200,        /* max width, height */
  50.         WBENCHSCREEN};
  51.  
  52. startup(wbmessage,argv)
  53. struct WBStartup *wbmessage;
  54. char *argv[];
  55. {
  56. LONG olddir;
  57. struct WBArg *arg;
  58.  
  59. if((IntuitionBase=OpenLibrary("intuition.library",0)) == NULL)exit(-1);
  60. if((DosBase = OpenLibrary(DOSNAME, 0)) == NULL) exit(-1);
  61. if((IconBase = OpenLibrary("icon.library", 0)) == NULL) exit(-1);
  62. if((GfxBase = OpenLibrary("graphics.library", 0)) ==NULL) exit(-1);
  63.  
  64.  
  65. window=OpenWindow(&nw);
  66. CDOpen(window);  /* open the console device */
  67.  
  68. SetWindowTitles(window,-1,"Demo Are Fun");
  69. ShowTitle(window->WScreen,TRUE);
  70.  
  71.  
  72. SetWindowTitles(window,-1,"Demo Program");
  73.  
  74. CDPutStr("\014Demo Program\r\n");
  75. while(CDMayGetChar() != (-1));
  76.  
  77. filename= &filebuffer[0];
  78.  
  79. SetDrMd(window->RPort,JAM1);
  80. SetAPen(window->RPort,BLACK);
  81. SetBPen(window->RPort,WHITE);
  82.  
  83. initMenus(window); /* start up the menu system */ 
  84.  
  85. /* startup & argument read varies depending on how we start */
  86. if (((ULONG)argv == 0) && (wbmessage->sm_NumArgs > 1)) { /* started from wb */
  87.     arg=(wbmessage->sm_ArgList);
  88.     if (wbmessage->sm_NumArgs > 1) {
  89.      arg++;
  90.      stringcopy(filebuffer,arg->wa_Name);
  91.  
  92.      SaveDir=arg->wa_Lock;
  93.      
  94.     printf("loading %s\n",filebuffer);
  95.     }
  96.     else { /* find the current directory to use as save directory */
  97.      SaveDir=arg->wa_Lock;
  98.     }
  99. }
  100.  
  101. else if (((ULONG)argv !=0) && ((ULONG)wbmessage>1)) { /* started from CLI */
  102.     stringcopy(filebuffer,argv[1]);
  103.     printf("loading %s\n",filebuffer);
  104. }
  105. }
  106.  
  107. stringcopy(dest, source)
  108. char *dest;
  109. char *source;
  110. {
  111. char *saved=dest;
  112. char *saves=source;
  113.  
  114. int i=0;
  115.  
  116. while (( i++ <30 )&&( *dest++ = *source++ ));
  117. *dest=0;
  118. dest=saved;
  119. source=saves;
  120. return(0);
  121. }
  122.